package com.zby.lease.common.Login;

/**
 * 登录用户持有类
 * 使用ThreadLocal来存储登录用户信息，保证每个线程都有自己的登录用户实例
 */
public class LoginUserHolder {
    // 使用ThreadLocal存储LoginUser对象，确保线程安全
    private static ThreadLocal<LoginUser> loginUserThreadLocal = new ThreadLocal<>();

    /**
     * 设置当前线程的登录用户信息
     * @param loginUser 登录用户对象
     */
    public static void setLoginUser(LoginUser loginUser) {
        loginUserThreadLocal.set(loginUser);
    }

    /**
     * 获取当前线程的登录用户信息
     * @return 登录用户对象
     */
    public static LoginUser getLoginUser() {
        return loginUserThreadLocal.get();
    }

    /**
     * 移除当前线程的登录用户信息
     * 用于清理线程中的登录用户数据，避免内存泄漏
     */
    public static void removeLoginUser() {
        loginUserThreadLocal.remove();
    }
}

